package priv.happy.mealpickpro.service;

import com.baomidou.mybatisplus.extension.service.IService;
import priv.happy.mealpickpro.domain.Food;
import priv.happy.mealpickpro.dto.AddFoodDTO;
import priv.happy.mealpickpro.dto.FoodDTO;
import priv.happy.mealpickpro.dto.UserFoodCount;
import priv.happy.mealpickpro.vo.FoodVO;

import java.io.IOException;
import java.util.List;

/**
 * @author HAPPY
 * @description 针对表【food】的数据库操作Service
 * @createDate 2023-07-02 11:23:42
 */
public interface FoodService extends IService<Food> {

    /**
     * 选餐
     * @param foodDTO
     * @return
     */
    FoodVO pickFood(FoodDTO foodDTO);


    /**
     * 根据foodId删除对应的food
     * @param foodId 要删除的foodId
     * @param userId 请求删除的用户id
     * @return 返回删除的结果
     */
    boolean removeFoodById(Integer foodId, Integer userId);


    /**
     * 用于定时任务统计每个用户的食物数量
     * @return 返回食物统计列表
     */
    List<UserFoodCount> countUserFoods();

    /**
     * 新增食物
      * @param addFoodDTO 新食物信息
     * @return 成功与否 0成功，1照片格式错误，2，其他错误
     */
    int addFood(AddFoodDTO addFoodDTO) throws IOException;

    /**
     * 修改食物信息
     * @param modifyFoodDTO 要修改的食物信息
     * @return 0-成功，1照片格式错误，2，其他错误
     */
    int modifyFood(AddFoodDTO modifyFoodDTO) throws IOException;
}
